<?php

namespace App\Observers;

use App\Jobs\NotaiceJob;
use App\Models\Notice;
use Illuminate\Support\Facades\Log;
use Illuminate\Mail\Message;
class NoticeObserver
{
    /**
     * Handle the Notice "created" event.
     *
     * @param  \App\Models\Notice  $notice
     * @return void
     */
    public function created(Notice $notice)
    {
        //可 异步发送短信 邮箱 推送通知 等一些列内容
        \Mail::raw('曹智勇 最帅',function (Message $message) {
            $message->to("1912298939@qq.com"); //发送到
            $message->subject("测试邮件"); // 邮件标题

        });   // 直接就发了 没有放到 队列中
        // 通过 模型关联 房东表和 客户表  获取相应数据 发送短信等内容

        //此时可能会有高并发  加入队列 等待消费者执行

        //调用 job   当添加延迟时 点击多次 会多次触发任务 所以需要防抖
        //实例化时 传递的参数 会在 JOb 递归方法中
      //  dispatch(new NotaiceJob($notice));

    }

    /**
     * Handle the Notice "updated" event.
     *
     * @param  \App\Models\Notice  $notice
     * @return void
     */
    public function updated(Notice $notice)
    {
        //
    }

    /**
     * Handle the Notice "deleted" event.
     *
     * @param  \App\Models\Notice  $notice
     * @return void
     */
    public function deleted(Notice $notice)
    {
        //
    }

    /**
     * Handle the Notice "restored" event.
     *
     * @param  \App\Models\Notice  $notice
     * @return void
     */
    public function restored(Notice $notice)
    {
        //
    }

    /**
     * Handle the Notice "force deleted" event.
     *
     * @param  \App\Models\Notice  $notice
     * @return void
     */
    public function forceDeleted(Notice $notice)
    {
        //
    }
}
